home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / space / software / mac / magellan.hqx / Magellan.prg < prev    next >
Text File  |  1992-11-02  |  9KB  |  334 lines

  1. SET procedure self
  2. SET talk off
  3. SET color to w/b
  4. SET bell off
  5. SET title to [Magellan Image Atlas]
  6. SET escape on
  7. ON escape return
  8.  
  9. DO WHILE .t.
  10.  
  11.   store "1" to pick1
  12.   DO STARTAPP
  13.   DO CASE
  14.  
  15.    CASE PICK1 = "1"
  16.      do MIDRS
  17.  
  18.    CASE PICK1 = '2'
  19.      do NAMES
  20.  
  21.    CASE PICK1 = '3'
  22.      do FEATURES
  23.  
  24.    CASE PICK1 = '4'
  25.      do REGION
  26.  
  27.    CASE PICK1 = '5'
  28.      clear
  29.      set title to [McMax]
  30.      exit
  31.  
  32.   ENDCASE
  33. ENDDO
  34. QUIT
  35.  
  36. PROCEDURE STARTAPP
  37.   clear
  38.   @ 7,27 say "MAGELLAN IMAGE LOCATIONS"
  39.   @ 8,9 TO 15,70
  40.   @ 9,10 say "(1) Find Images by Latitude / Longitude "
  41.   @ 10,10 say "(2) Find Latitude / Longitude / Origin of a Named Feature"
  42.   @ 11,10 say "(3) Find Named Features in a Specific Image"
  43.   @ 12,10 say "(4) Find Named Features in a Specified Region"
  44.   @ 13,10 say "(5) EXIT" 
  45.   @ 17,10 get pick1
  46.   Read
  47. RETURN
  48.  
  49. PROCEDURE MIDRS
  50.   use midr
  51.   clear
  52.   Store 0 to whval1, whval2
  53.   @ 1,10 say "ENTER LATITUDE (90.0 to -90.0): ";
  54.     get WHVAL1 picture "###.##"
  55.   @ 2,10 say "ENTER LONGITUDE (0.0 to 360.0): ";
  56.     get WHVAL2 picture "###.##"
  57.   read
  58.   if whval1 > 90 .or. whval1 < -90 .or. whval2 > 360 .or. whval2 < 0
  59.     @ 23,5 say "Value of latitude/longitude out of range."
  60.     wait "     Press any key to continue."
  61.     return
  62.   endif
  63.   if whval2 = 360
  64.     store 0 to whval2
  65.   endif
  66.   SET FILTER TO UPPERLAT >= WHVAL1 .AND. LOWERLAT <= WHVAL1 .AND. ;
  67.     FARLEFT <= WHVAL2 .AND. FARRIGHT >= WHVAL2
  68.   goto top
  69.   @ 3,10 say " "
  70.   ? space(10) + "  MIDR        TYPE   CDROM"
  71.   ? space(10) + "---------     ----  -------"
  72.   DO WHILE .NOT. EOF()
  73.     ? space(10) + MIDR + "     " + TYPE + "    " + CDROM
  74.     skip
  75.   ENDDO
  76.   if whval2+360 < 593.19 
  77.     SET FILTER TO UPPERLAT >=  WHVAL1 .AND. LOWERLAT <= WHVAL1 .AND. ;
  78.       FARLEFT <= (WHVAL2+360) .AND. FARRIGHT >= (WHVAL2+360)
  79.     goto top
  80.     ?
  81.     DO WHILE .NOT. EOF()
  82.       ? space(10) + MIDR + "     " + TYPE + "    " + CDROM
  83.       skip
  84.     ENDDO
  85.   endif
  86.  
  87.   store 'N' to whval7
  88.   @ 24,5 say "Do you wish to  print these results ?: " ;
  89.     get whval7 picture '!'
  90.   read
  91.   if whval7 = 'Y'
  92.                 clear
  93.                 @ 10,10 say "WAIT, PLEASE."
  94.     set device to print
  95.     @ 5,5 say "Latitude:  "
  96.     @ 5,16 say whval1
  97.     @ 6,5 say "Longitude: "
  98.     @ 6,16 say whval2
  99.     @ 7,5 say " "
  100.     SET FILTER TO UPPERLAT >= WHVAL1 .AND. LOWERLAT <= WHVAL1 .AND. ;
  101.     FARLEFT <= WHVAL2 .AND. FARRIGHT >= WHVAL2
  102.     goto top
  103.     disp all MIDR,TYPE,CDROM to print off
  104.     if whval2+360 < 593.19
  105.       SET FILTER TO UPPERLAT >=  WHVAL1 .AND. LOWERLAT <= WHVAL1 .AND. ;
  106.       FARLEFT <= (WHVAL2+360) .AND. FARRIGHT >= (WHVAL2+360)
  107.       goto top
  108.       @ prow()+1,5 say " "
  109.       disp all MIDR,TYPE,CDROM to print off
  110.     endif
  111.     eject
  112.     set device to screen
  113.   endif
  114. RETURN
  115.  
  116. PROCEDURE NAMES
  117.   use names
  118.   clear
  119.   @ 2,5 say " "
  120.   ? "FEATURES MAY HAVE A UNIQUE LATITUDE / LONGITUDE OR COVER A RANGE."
  121.   ?
  122.   ? "ENTER WHOLE OR PARTIAL NAMES; I.E."
  123.   ? "APHRODITE TERRA or APHRODITE or APHRO or DITE or TERRA"
  124.   ?
  125.   ? "MORE THAN ONE FEATURE MAY BE FOUND (I.E. TERRA)"
  126.   ? "VIEW THEM ONE BY ONE BY CHOOSING Record Back AND Record Forward."
  127.   ? "(Apple-F or Apple-B)"
  128.   ?
  129.   ? "STOP BY CHOOSING Escape. (Apple-.)"
  130.   ?
  131.   store space(15) to  whval3
  132.   @ 16,5 say "ENTER FEATURE NAME: " get whval3 picture '!!!!!!!!!!!!!!!'
  133.   read
  134.   store trim(whval3) to whval4
  135.   if whval3 = " "
  136.     return
  137.   endif
  138.   set filter to '&whval4' $ name
  139.   goto top
  140.   clear
  141.   edit
  142. RETURN
  143.  
  144. PROCEDURE FEATURES
  145.   use midr index
  146.   clear
  147.         @ 1,5 say " "
  148.   ? "THIS OPTION FINDS THE NAMED FEATURES ON A SPECIFIED MOSAIC."
  149.   ? "FOR EXAMPLE, IF YOU WANT TO ANNOTATE THE FEATURES IN A PARTICULAR"
  150.   ? "IMAGE, THIS OPTION CAN HELP."
  151.   ?
  152.   ? "ALL NAMED FEATURES WHICH OVERLAP OR LIE INSIDE THE SPECIFIED MOSAIC"
  153.   ? "WILL BE FOUND.  SOME FEATURES MAY BE LARGER THAN THE MOSAIC, SO"
  154.   ? "THEY WILL NOT BE COMPLETELY CONTAINED INSIDE."
  155.   store space(2) to whval3
  156.   store space(10) to whval4
  157.   @ 11,3 say "ENTER MOSAIC TYPE (i.e. F, C1, C2): " get whval3 picture "!!"
  158.   @ 12,3 say "ENTER MOSAIC NAME (i.e. 75N351;1): "  get whval4 picture "!!!!!!!!!!"
  159.   read
  160.   if whval3 = " " .or. whval4 = " "
  161.     return
  162.   endif
  163.   store whval3 + whval4 to typemidr
  164.   store trim(typemidr) to Xtypemidr
  165.  
  166.   find &Xtypemidr
  167.   if .not. found()
  168.     @ 20,7 SAY  "The mosaic type and name you entered cannot be found."
  169.     wait "       Press any key to continue."
  170.     return
  171.   endif
  172.   store type to type1
  173.   store midr to midr
  174.   store upperlat to upper
  175.   store lowerlat to lower
  176.   store farleft to left
  177.   store farright to right
  178.  
  179.   clear
  180.   @ 2,7 say type1 + "  " + midr
  181.   use names
  182.   set filter to lowerlat < upper .and. upperlat > lower ;
  183.    .and. farleft < right .and. farright > left
  184.   store 6 to row
  185.   do FEANAME
  186.   if (right > 359.99)
  187.     set filter to lowerlat < upper .and. upperlat > lower ;
  188.      .and. farleft < (right-360) .and. farright > (left-360)
  189.         do FEANAME
  190.   endif
  191.   if (left < 9.81)
  192.     set filter to lowerlat < upper .and. upperlat > lower ;
  193.      .and. farleft < (right+360) .and. farright > (left+360)
  194.         do FEANAME
  195.   endif 
  196.  
  197.   store 'N' to whval7
  198.   @ 24,5 say "Do you wish to  print these results ?: " ;
  199.     get whval7 picture '!'
  200.   read
  201.   if whval7 = 'Y'
  202.                 clear
  203.                 @ 10,10 say "WAIT, PLEASE."
  204.     set device to print
  205.     @ 5,5 say "Type:  "
  206.     @ 5,16 say type1
  207.     @ 6,5 say "MIDR: "
  208.     @ 6,16 say midr
  209.     @ 7,5 say " "
  210.     set filter to lowerlat < upper .and. upperlat > lower ;
  211.      .and. farleft < right .and. farright > left
  212.     goto top
  213.     disp all FEATURE, NAME to print off
  214.     if (right > 359.99)
  215.       set filter to lowerlat < upper .and. upperlat > lower ;
  216.        .and. farleft < (right-360) .and. farright > (left-360)
  217.       goto top
  218.                         @ prow()+1,5 say " "
  219.       disp all FEATURE, NAME to print off
  220.     endif
  221.     if (left < 9.81)
  222.       set filter to lowerlat < upper .and. upperlat > lower ;
  223.        .and. farleft < (right+360) .and. farright > (left+360)
  224.       goto top
  225.                         @ prow()+1,5 say " "
  226.       disp all FEATURE, NAME to print off
  227.     endif
  228.     eject
  229.     set device to screen
  230.   endif
  231. RETURN
  232.  
  233. PROCEDURE FEANAME
  234.   goto top
  235.   @ 4,7 say "FEATURE  NAME"
  236.   @ 5,7 say "-------  ----"
  237.   do while .not. eof()
  238.     @ row,7  say feature + "  " + name
  239.     if row > 21
  240.       @ (row+1),7 say " "
  241.       wait  "  Press any key to continue."
  242.       clear
  243.       @ 2,7 say type1 + "  " + midr
  244.       @ 4,7 say "FEATURE  NAME"
  245.       @ 5,7 say "-------  ----"
  246.       store 6 to row
  247.     else
  248.       row = row + 1
  249.     endif
  250.     skip
  251.   enddo
  252. RETURN
  253.  
  254. PROCEDURE REGION
  255.   use names
  256.   clear
  257.   @ 2, 5 say " "
  258.   ? "THIS OPTION FINDS THE NAMED FEATURES INSIDE A SPECIFIED REGION."
  259.   ? "IT CAN FIND WHETHER A FEATURE YOU HAVE LOCATED HAS A NAME."
  260.   ? "THE REGION CAN BE A POINT (ONE LAT/LONG) OR CAN WRAP PAST 360."
  261.   ?
  262.   ? "ALL NAMED FEATURES WHICH OVERLAP OR LIE INSIDE THE SPECIFIED MOSAIC"
  263.   ? "WILL BE FOUND.  SOME FEATURES MAY BE LARGER THAN THE MOSAIC, SO"
  264.   ? "THEY WILL NOT BE COMPLETELY CONTAINED INSIDE."
  265.   store 0 to upper, lower, left, right
  266.   @ 11, 7 say "UPPER LATITUDE (90.0 to -90.0): " get upper picture "###.##"
  267.   @ 12, 7 say "LOWER LATITUDE (90.0 to -90.0): " get lower picture "###.##"
  268.   @ 13, 7 say "LEFT  LONGITUDE (0.0 to 360.0): " get  left picture "###.##"
  269.   @ 14, 7 say "RIGHT LONGITUDE (0.0 to .....): " get right picture "###.##"
  270.   read
  271.   if upper > 90 .or. upper < -90 .or. lower > 90 .or. lower < -90 ;
  272.     .or. left < 0 .or. left > 360 .or. right < 0 ;
  273.     .or. lower > upper .or. left > right
  274.     @ 23,5 say "Value of latitude/longitude out of range."
  275.     wait "     Press any key to continue."
  276.     return
  277.   endif
  278.   set filter to lowerlat < upper .and. upperlat > lower ;
  279.    .and. farleft < right .and. farright > left
  280.   clear
  281.   store 6 to row
  282.   store " " to type1, midr
  283.         do FEANAME
  284.   if (right > 359.99)
  285.     set filter to lowerlat < upper .and. upperlat > lower ;
  286.      .and. farleft < (right-360) .and. farright > (left-360)
  287.         do FEANAME
  288.   endif
  289.   if (left < 9.81)
  290.     set filter to lowerlat < upper .and. upperlat > lower ;
  291.      .and. farleft < (right+360) .and. farright > (left+360)
  292.         do FEANAME
  293.   endif 
  294.  
  295.   store 'N' to whval7
  296.   @ 24,5 say "Do you wish to  print these results ?: " ;
  297.     get whval7 picture '!'
  298.   read
  299.   if whval7 = 'Y'
  300.     clear
  301.                 @ 10,10 say "WAIT, PLEASE."
  302.     set device to print
  303.     @ 5,5 say "Upper Latitude:"
  304.     @ 5,22 say upper
  305.     @ 6,5 say "Lower Latitude:"
  306.     @ 6,22 say lower
  307.     @ 7,5 say "Left Longitude:"
  308.                 @ 7,22 say left
  309.                 @ 8,5 say "Right Longitude:"
  310.                 @ 8,22 say right
  311.     @ 9,5 say " "
  312.     set filter to lowerlat < upper .and. upperlat > lower ;
  313.      .and. farleft < right .and. farright > left
  314.     goto top
  315.     disp all FEATURE, NAME to print off
  316.     if (right > 359.99)
  317.       set filter to lowerlat < upper .and. upperlat > lower ;
  318.        .and. farleft < (right-360) .and. farright > (left-360)
  319.       goto top
  320.                         @ prow()+1,5 say " "
  321.       disp all FEATURE, NAME to print off
  322.     endif
  323.     if (left < 9.81)
  324.       set filter to lowerlat < upper .and. upperlat > lower ;
  325.        .and. farleft < (right+360) .and. farright > (left+360)
  326.       goto top
  327.                         @ prow()+1,5 say " "
  328.       disp all FEATURE, NAME to print off
  329.     endif
  330.     eject
  331.     set device to screen
  332.   endif
  333. RETURN
  334.